ARCINEX 软件中心 0.1.4
实现状态：2026-10-23

用户怎样更新
1. 首次安装软件中心，放进「应用程序」。已有工具继续独立使用。
2. 正式更新服务上线后，中心读取已签名的产品目录，比较本机版本和构建号。
3. 有新版时显示「更新」，用户查看说明，下载后校验大小、SHA256 和签名清单。
4. 独立工具 ZIP 可在中心内安装；软件运行时会拒绝替换。保留旧版备份，不覆盖个人设置和数据。
5. 调色助手使用专用 DMG/PKG，先保存工程、退出 FCP，再安装并注册效果。不会强制结束工程。
6. 软件中心本身采用 Sparkle 更新，用户从中心菜单检查。首次没有更新器的老版本需要手动安装一次中心。

这次已完成
五款真实工具的本机版本识别、启动，特效助手仅界面预览；功能介绍、版本说明、设置、已有安装包导入、精确版本探测、安全独立 ZIP 更新、失败回退、联网目录验签、HTTPS 下载及完整性检查、Sparkle 自更新接入。
本轮核心与 Portal 策略回归重新执行；15 项自更新边界与 11 项 HTTPS 下载为保留原日期的历史报告，不是新主站网络验收。

尚未上线
没有默认互联网签名更新地址；官网已实现可配置手机号登录，未配置真实短信时关闭。购买和激活服务尚未接入。当前随包目录为本地版本快照，不能声称全部工具已通过在线最新版本检查。
本包为 Apple 芯片 macOS 13+ 开发测试版。单个工具有自己的最低系统要求。
当前系统只有 Apple Development 证书，未使用 Developer ID 发行签名或 Apple 公证。正式对外售卖前应补齐。

开发者发版方式
每款工具独立递增版本与构建号。修复错误和性能后先回归测试，再发布。
为四款独立工具生成单一 .app 根目录 ZIP（旧分享合集、嵌套文件夹 ZIP 不是自动安装格式）；调色助手提供经过验证的专用 DMG/PKG。
保留调色效果 UUID、参数 ID 和旧工程路径。预设、LUT、模型、素材索引与程序分开存放和版本化。
更新 Resources/Catalog.json 中的版本、构建号、系统要求和说明。
完成 Developer ID 签名、公证、stapling 和另一台机器的安装测试。
安装包先上传不可变版本地址，最后发布签名清单。

源码工具
tools/prepare-catalog.py --base-url https://你的下载域名/releases --packages 包路径字典.json --output 发布目录 --private-key 私钥路径
包路径字典形如 {"video":"安装包绝对路径.zip","film":"调色安装包绝对路径.dmg"}。
此工具仅生成目录和签名，不会上传。安装包实际版本必须与目录一致。
build.command 支持 ARCINEX_CATALOG_FEED_URL、ARCINEX_CENTER_FEED_URL、ARCINEX_OFFICIAL_UPDATE_HOSTS 三个发行环境变量；正式版内置这些地址，普通用户不必填写。
中心自身使用 Sparkle 官方 generate_appcast / sign_update。先将 ReleaseTool 的 raw seed 按官方工具要求转换为 base64 私钥文件，再用于签名；不要把私钥放进源码、安装包或服务器。私钥目录为本机 Library/Application Support/ARCINEX Publishing，文件权限 600。
软件中心和工具目录共用固定的 Ed25519 公钥。更换密钥要另做兼容迁移，不能随意换钥重发。
正式签名时按 Sparkle 文档重签 XPC、Helpers、framework 和主应用；当前 build.command 仅本机测试，不是发行签名脚本。
Source 包不包含私钥。构建仅使用随包的既有公钥，不读取或生成私钥；缺少公钥会停止。签名发版必须在独立受控步骤使用原发行私钥，不能生成新发行身份。

托管建议
官网展示和评论单独部署，安装包放对象存储/CDN。产品清单与中心自更新订阅使用自有 HTTPS 地址。
可以先上线免费下载和更新，再独立接购买、设备激活与离线授权。网站、支付与授权接口不进入 FCP 逐帧渲染流程。
LUT 与模型后续可独立更新；已用于工程的风格数据保留快照，资源更新不改变旧工程画面。

参考
Sparkle 官方源码 https://github.com/sparkle-project/Sparkle
Sparkle 官方更新文档 https://sparkle-project.org/documentation/
采用官方 2.10.0 framework，保留 MIT、BSD 和 zlib 完整许可。

0.1.2：同步官网的详细使用说明、每款软件建议评论和侧栏建议反馈。打赏保留小入口并打开独立网页；手机号登录尚未开通。使用现有公钥和图标，构建不再读取或生成私钥。

0.1.2：修复关闭或切换网页视图时的 SwiftUI 状态重入崩溃，延迟加载回调并使过期任务失效。

0.1.3（20261023.4）：同步素材助手 1.2.0（20261023.1）与字幕助手 1.9.8（20261023.1）的开发测试版目录、名称与修复说明，保留 0.1.2 网页视图生命周期修复。
本次不改安装逻辑、官网嵌入域名或更新源，不生成签名 feed、不更换公钥或应用图标。在线素材库、Qwen 多模型与云端语音生成未接入。
本包未启动、安装或终止正在运行的软件中心。若附界面参考图，它明确沿用 0.1.1，不作为 0.1.3 的实机截图。

0.1.4（20261023.5）
主站改为用户指定的 https://www.arcinex.top，说明、六个产品建议区与打赏使用同源页面。本轮只做纯 URL/策略回归，不访问域名，不声称 DNS/TLS、浏览器或内嵌登录完成真实验收。WebKit 使用共享持久 Cookie，内嵌页可点击登录；普通浏览器和旧域名身份不自动共享或迁移。
同步调色 0.5.2（19）、音频 2.0.0（20261023.1）、字幕 1.10.0（20261023.2）与素材 1.2.0 的测试目录。调色仅描述部分 CPU 模块跳过无效运算、回归画面数值一致，不宣称 FCP 整体提速百分比。Qwen、独立强制对齐、全部新模型推理及真实云服务不作为已验证能力宣传。特效助手仅界面预览，沿用官网待确认的新图，仅设计预览，尚无批准的新品牌图标或安装包；目录、安装器与导入列表阻止安装。
公钥、应用标识及用户确认的六张原图不变。普通构建不再重生图标，构建和打包强制批准 SHA 校验。Dock 自绘支持尺寸调整，但没有启动应用验收系统外观，白框显示不作为已解决问题。分发包不加入自定义 FinderInfo 或资源叉，不通过放宽签名验证伪装通过。
未配置或生成更新 feed，未安装、打开或终止用户软件；如附界面图，明确沿用 0.1.1，仅供布局参考。

本轮另修复旧自定义图标导致 ZIP 升级 strict 失败的问题：先完整备份旧 app（含 FinderInfo 与 Icon 文件资源叉），保留目标根 inode、权限及无关属性，只移除新目标中的旧图标元数据；替换后仍执行 deep+strict。失败恢复旧 Contents 和原图标元数据，不把旧属性复制到新版本。全临时合成回归验证升级、备份还原与故障回退；未操作应用程序中的实际软件，也未验收 Finder 实际显示。

FinderInfo 的非图标标志也不会继承到新版根目录，因为该属性会触发严格签名拒绝；完整旧备份及失败回退保留原值。必要权限和无关扩展属性继续保留。
